/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package CONTROLES;


import MODELOS.Empleo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

/**
 *
 * @author Administrador
 */
public class ControlEmpleo {

    private Empleo empleo = new Empleo();
     private ArrayList<Empleo> listaEmp = new ArrayList<Empleo>();

    public ControlEmpleo(){

    }

    public Empleo getEmpleo() {
        return empleo;
    }

    public void setEmpleo(Empleo empleo) {
        this.empleo = empleo;
    }

    public boolean registrarEmpleo(Empleo e)
    {

       Conexion conection = new Conexion();
       try
       {
          Connection conectado = conection.getConexion();
          PreparedStatement ps = conectado.prepareStatement("INSERT INTO empleo(id_empleo, id_sucursal, descripcion, nombre, salario) VALUES (nextval('empleo_id_empleo_seq'),'"+e.getIdSucursal()+"','"+e.getDescripcionEmpleo()+"','"+e.getNombreEmpleo().toUpperCase()+"','"+e.getSalario()+"')");
          ps.executeUpdate();
          ps.close();
        } catch (SQLException em) {
            System.out.println("error al insertar el Empleo "+em.getLocalizedMessage() );
            return false;
          }
       return true;
     }

    public boolean actualizarEmpleo(Empleo e)
    {

       Conexion conection = new Conexion();
       try
       {
          Connection conectado = conection.getConexion();
          PreparedStatement ps = conectado.prepareStatement("UPDATE empleo SET nombre = '"+e.getNombreEmpleo()+"', descripcion = '"+e.getDescripcionEmpleo()+"', salario = '"+e.getSalario()+"', id_sucursal = '"+e.getIdSucursal()+"' WHERE id_empleo = '"+e.getIdEmpleo()+"';");
          ps.executeUpdate();
          ps.close();
        } catch (SQLException em) {
            System.out.println("error al actualizar el Empleo "+em.getLocalizedMessage() );
            return false;
          }
       return true;
     }


    public ArrayList<Empleo> getListaEmpleos() {

        listaEmp = getEmpleos();

        return listaEmp;
    }

    public String[] nombresEmpleos()
    {
        String lista[]=new String[getEmpleos().size()];

         //ControlEmpleado c = new ControlEmpleado();

        for(int i=0; i<getListaEmpleos().size(); i++ )

        lista[i]=getListaEmpleos().get(i).getIdEmpleo()+"-"+getListaEmpleos().get(i).getNombreEmpleo().toString();


    return lista;

    }

    public ArrayList<Empleo> getEmpleos(){
       Conexion conection = new Conexion();
       ArrayList<Empleo> res = new ArrayList<Empleo>();
       Empleo emplea;
    try{
            Connection conectado = conection.getConexion();

            PreparedStatement psc = conectado.prepareStatement("select * from EMPLEO ORDER BY id_empleo ASC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){
                emplea= new Empleo();
                emplea.setIdEmpleo(respEmp.getInt(1));
                emplea.setNombreEmpleo(respEmp.getString(2));
                emplea.setDescripcionEmpleo(respEmp.getString(3));
                emplea.setSalario(respEmp.getDouble(4));
                emplea.setIdSucursal(respEmp.getInt(5));
                

                res.add(emplea);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar lista de empleos " + e.getLocalizedMessage());
        }

return res;
}

    public ArrayList<Empleo> getEmpleosXSuc(int idSuc){
       Conexion conection = new Conexion();
       ArrayList<Empleo> res = new ArrayList<Empleo>();
       Empleo emplea;
    try{
            Connection conectado = conection.getConexion();

            PreparedStatement psc = conectado.prepareStatement("select * from EMPLEO WHERE id_sucursal = '"+idSuc+"' ORDER BY id_empleo ASC");
            ResultSet respEmp = psc.executeQuery();
            while (respEmp.next()){
                emplea= new Empleo();
                emplea.setIdEmpleo(respEmp.getInt(1));
                emplea.setNombreEmpleo(respEmp.getString(2));
                emplea.setDescripcionEmpleo(respEmp.getString(3));
                emplea.setSalario(respEmp.getDouble(4));
                emplea.setIdSucursal(respEmp.getInt(5));


                res.add(emplea);
            }
        }
            catch (SQLException e){
            System.out.println("error al recuperar lista de empleos " + e.getLocalizedMessage());
        }

return res;
}

    public String dameNomEmpleo(int idEmpleo) {
        Conexion conection = new Conexion();
        String emplea="";
    try {
            Connection conectado = conection.getConexion();
            PreparedStatement psA = conectado.prepareStatement("select nombre from empleo where id_empleo ='"+idEmpleo+"'");
            ResultSet respA = psA.executeQuery();
            if(respA.next()){
                emplea=respA.getString(1);



            }

        } catch (SQLException ex) {
            System.out.println("Error buscar empleo por su id : "+ex.getLocalizedMessage());
        }

    return emplea;
    }

    public int dameIdEmpleo(String nombre) {
        Conexion conection = new Conexion();
        int emplea= 0;
    try {
            Connection conectado = conection.getConexion();
            PreparedStatement psA = conectado.prepareStatement("select id_empleo from empleo where nombre ='"+nombre+"'");
            ResultSet respA = psA.executeQuery();
            if(respA.next()){
                emplea=respA.getInt(1);



            }

        } catch (SQLException ex) {
            System.out.println("Error buscar empleo por su nombre : "+ex.getLocalizedMessage());
        }

    return emplea;
    }

    public Empleo dameEmpleo(int idEmpleado) {
        Conexion conection = new Conexion();
        Empleo emplea = new Empleo();
    try {
            Connection conectado = conection.getConexion();
            PreparedStatement psA = conectado.prepareStatement("select * from empleo where id_empleo ='"+idEmpleado+"'");
            ResultSet respA = psA.executeQuery();
            if(respA.next()){
                emplea.setIdEmpleo(respA.getInt(1));
                emplea.setNombreEmpleo(respA.getString(2));
                emplea.setDescripcionEmpleo(respA.getString(3));
                emplea.setSalario(respA.getDouble(4));
                emplea.setIdSucursal(respA.getInt(5));
                
            }

        } catch (SQLException ex) {
            System.out.println("Error buscar empleo por su id : "+ex.getLocalizedMessage());
        }
    return emplea;
    }


    public static void main (String args [])
    {
        ControlEmpleo con = new ControlEmpleo();
//        System.out.println("empleo... "+con.sacarEmpleo().getNombreEmpleo());
    }


}
